PHP preg_replace 替换换行符
全部标签 我正在努力提高接受XML字符串并在返回字符串之前替换某些字符(编码)的函数的性能。该功能受到冲击,因此尽可能快地运行很重要。通常的情况是没有任何字符存在——所以我想特别优化它。正如您将在示例代码中看到的,要替换的字符串很短,而且相对较少。源字符串通常很短(例如10-20个字符),但也可能更长(例如200个字符左右)。到目前为止,我已经确保正则表达式是预编译的,并且我已经消除了会减慢操作速度的嵌套函数(此时部分毫秒很重要。)varobjXMLToString=newXMLToStringClass();functionXMLToStringClass(){this.tester=/\\3
我有以下字符串和正则表达式:varstring="Dear[toname],[yourname]hasdecidedtosharethis[link]";varpatt=/\[+[A-Za-z0-9]+\]/;我希望能够使用动态输入更改括号中的每个变量。我如何使用match()或replace()来定位此正则表达式的第1、2和3次出现?编辑:目前,如果我执行类似document.write(body.match(patt));的操作,它只会匹配最后一个[link]编辑:整个字符串取自文本框的值。每个括号的值都取自其他文本输入,需要在将文本放回文本框之前插入到字符串中。
谁能告诉我哪里出了问题?JS代码$.ajax({url:"http://www.google.com/complete/search?qu=chicken",success:function(data){vartest_data=''+data+'';//convertobjecttoastring$('body').append(typeof(test_data));vartest_data=replace.test_data(/[0-9]/,'X');$('body').append(''+test_data+'');},dataType:'jsonp',error:functio
我最近从0.8~更新到最新版本的Node.js(1.10~),我在运行时收到一条消息说:util.pump()isdeprecated.UsereadableStream.pipe()instead.我曾尝试将我的函数切换为readableStream.pipe(),但我认为它的工作方式不同。所以我有三个问题:为什么不推荐使用util.pump?如何切换到readableStream.pipe()?或者3.如何关闭此警告?这是我使用它的代码(有mustache)varstream=mu.compileAndRender(template_file,json_object_from_db
我一直在学习js中的正则表达式,遇到一个我不明白的情况。我使用以下正则表达式对替换函数进行了测试:/\W*/g并期望它在字符串的开头添加前缀并继续替换所有非单词字符。TheNumberis(123)(234)会变成:_The_Number_is__123___234_这将在字符串前面添加,因为它至少有零个实例,然后替换所有不间断空格和非单词字符。相反,它在每个字符前加上所有非单词字符。_T_h_e__N_u_m_b_e_r__i_s__1_2_3__2_3_4__为什么要这样做? 最佳答案 问题是\W*的意思。它的意思是“0个或多个
这个问题在这里已经有了答案:Replacemethoddoesn'twork(4个答案)关闭4年前。我有一个要操作的简单字符串:Yourorderwillbeprocessedsoon:我使用以下方法获取字符串:varhtml=jQuery('.checkouttdh4').html();然后我尝试使用以下方法替换“:”:html.replace(":",".");当我将它打印到控制台时,该字符串与原始字符串相同。我还尝试通过执行以下操作确保html变量的类型为“string”:html=html+"";那没有做任何事情。在四处搜索时,replace函数似乎进行了RegEx搜索,并且“
我正在尝试匹配字符串中的用户名,例如:"user:hi,hasanyoneseenusertodayuser"要匹配的案例:substring是第一个单词尾随一个空格,中间被空格包围或者最后一个单词前导一个空格允许跟在单词后面但不作为结果返回的字符:“:;,”以下匹配所有情况但返回不需要的空格和字符(我只想替换用户名):/(^(user)[\s|:|;|,])|(\s(user)[\s|:|;|,]?\s)|(\s(user))/gi最后我只想用链接替换用户名。编辑:请注意,如果用户名是url或其他字符串的一部分,则无法匹配,除非特殊字符尾随它。 最佳答案
如果我在ChromeJS控制台上输入“_.template($('#pranks-list').html())”,它也能正常工作>>_.template($('#pranks-list').html())function(a){returne.call(this,a,b)}应用程序.js//Viewwindow.PranksListView=Backbone.View.extend({template:_.template($('#pranks-list').html())});索引.html'>为什么我会在这一行出现这个错误??template:_.template($('#pran
我在某处找到了这段代码,它非常有用:varn=parseInt(e.find("span.favNum").text().replace(/./g,""))+1;如果我以类似的方式进行操作,它就不再起作用了。我做了以下事情:6.987vartest=$("#test");varr=test.text().replace(/./g,"");console.log("wrong",r);我知道我也可以这样替换它:varr=test.text().replace(".","");这有效。我想了解为什么“被盗”的代码段有效。有什么想法吗?http://jsfiddle.net/nJZMf/3/
我正在尝试弄清楚以下正则表达式以及为什么它会给出我得到的结果。我有以下javascript:letresult='7979797'.replace(/797/g,'77');我本来期望结果的值为7777,但它的值为77977。我希望有人能解释为什么我得到77977的值,以及我需要更改正则表达式以将所有具有模式797的字符串替换为77。 最佳答案 当正则表达式用77替换第一个797时,它不会重新扫描它替换的Material(77),所以它接下来会看到9,然后是797,从而得出您得到的结果。